kFullNotify = 0; { This is the appleevent whole nine yards notify }
kFullDependencyNotify = 1; { Only sends to those who want to know about interrelated functionality (used for updating UI) }
{ DisplayID/DeviceID constants }
kDummyDeviceID = $0FF; { This is the ID of the dummy display, used when the last “real” display is disabled.}
kInvalidDisplayID = $000; { This is the invalid ID}
kFirstDisplayID = $100;
{ bits for panelListFlags }
kAllowDuplicatesBit = 0;
{ bits for nameFlags }
kSuppressNumberBit = 0;
kSuppressNumberMask = 1;
kForceNumberBit = 1;
kForceNumberMask = 2;
kSuppressNameBit = 2;
kSuppressNameMask = 4;
{ Constants for fidelity checks }
kNoFidelity = 0;
kMinimumFidelity = 1;
kDefaultFidelity = 500; { I'm just picking a number for Apple default panels and engines}
kDefaultManufacturerFidelity = 1000; { I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)}
kAnyPanelType = 0; { Pass to DMNewEngineList for list of all panels (as opposed to specific types)}
kAnyEngineType = 0; { Pass to DMNewEngineList for list of all engines}
kAnyDeviceType = 0; { Pass to DMNewDeviceList for list of all devices}
kAnyPortType = 0; { Pass to DMNewDevicePortList for list of all devices}
{ portListFlags for DM_NewDevicePortList }
{ Should offline devices be put into the port list (such as dummy display) }
kPLIncludeOfflineDevicesBit = 0;
TYPE
DMFidelityType = LONGINT;
{ AVID is an ID for ports and devices the old DisplayID type
is carried on for compatibility
}
AVIDType = LONGINT;
DisplayIDType = AVIDType;
DMListType = Ptr;
DMListIndexType = LONGINT;
AVPowerStateRec = VDPowerStateRec;
AVPowerStatePtr = ^VDPowerStateRec;
DMComponentListEntryRec = RECORD
itemID: DisplayIDType; { DisplayID Manager}
itemComponent: Component; { Component Manager}
itemDescription: ComponentDescription; { We can always construct this if we use something beyond the compontent mgr.}
itemClass: ResType; { Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)}
itemFidelity: DMFidelityType; { How good is this item for the specified search?}
itemSubClass: ResType; { Subclass of group to put this panel. Can use to do sub-grouping (eg volume for volume panel and mute panel)}
itemSort: Point; { Set to 0 - future to sort the items in a sub group.}
itemFlags: LONGINT; { Set to 0 (future expansion)}
itemReserved: ResType; { What kind of code does the itemReference point to (right now - kPanelEntryTypeComponentMgr only)}
itemFuture1: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
itemFuture2: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
itemFuture3: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
itemFuture4: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
FUNCTION DMNewAVPanelList(displayID: DisplayIDType; panelType: ResType; minimumFidelity: DMFidelityType; panelListFlags: LONGINT; reserved: LONGINT; VAR thePanelCount: DMListIndexType; VAR thePanelList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0C27, $ABEB;
{$ENDC}
FUNCTION DMNewAVEngineList(displayID: DisplayIDType; engineType: ResType; minimumFidelity: DMFidelityType; engineListFlags: LONGINT; reserved: LONGINT; VAR engineCount: DMListIndexType; VAR engineList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0C28, $ABEB;
{$ENDC}
FUNCTION DMNewAVDeviceList(deviceType: ResType; deviceListFlags: LONGINT; reserved: LONGINT; VAR deviceCount: DMListIndexType; VAR deviceList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0A29, $ABEB;
{$ENDC}
FUNCTION DMNewAVPortListByPortType(subType: ResType; portListFlags: LONGINT; reserved: LONGINT; VAR devicePortCount: DMListIndexType; VAR theDevicePortList: DMListType): OSErr;
FUNCTION DMDisposeList(panelList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $022C, $ABEB;
{$ENDC}
FUNCTION DMGetNameByAVID(theID: AVIDType; nameFlags: LONGINT; VAR name: Str255): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $062D, $ABEB;
{$ENDC}
FUNCTION DMNewAVIDByPortComponent(thePortComponent: Component; portKind: ResType; reserved: LONGINT; VAR newID: AVIDType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $082E, $ABEB;
{$ENDC}
FUNCTION DMGetPortComponentByAVID(thePortID: DisplayIDType; VAR thePortComponent: Component; VAR theDesciption: ComponentDescription; VAR thePortKind: ResType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $082F, $ABEB;
{$ENDC}
FUNCTION DMSendDependentNotification(notifyType: ResType; notifyClass: ResType; displayID: AVIDType; notifyComponent: ComponentInstance): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0830, $ABEB;
{$ENDC}
FUNCTION DMDisposeAVComponent(theAVComponent: Component): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0231, $ABEB;
{$ENDC}
FUNCTION DMSaveScreenPrefs(reserved1: LONGINT; saveFlags: LONGINT; reserved2: LONGINT): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0632, $ABEB;
{$ENDC}
FUNCTION DMNewAVIDByDeviceComponent(theDeviceComponent: Component; portKind: ResType; reserved: LONGINT; VAR newID: DisplayIDType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0833, $ABEB;
{$ENDC}
FUNCTION DMNewAVPortListByDeviceAVID(theID: AVIDType; minimumFidelity: DMFidelityType; portListFlags: LONGINT; reserved: LONGINT; VAR devicePortCount: DMListIndexType; VAR theDevicePortList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0C34, $ABEB;
{$ENDC}
FUNCTION DMGetDeviceComponentByAVID(theDeviceID: AVIDType; VAR theDeviceComponent: Component; VAR theDesciption: ComponentDescription; VAR theDeviceKind: ResType): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $303C, $0835, $ABEB;
{$ENDC}
FUNCTION DMNewDisplayModeList(displayID: DisplayIDType; modeListFlags: LONGINT; reserved: LONGINT; VAR thePanelCount: DMListIndexType; VAR thePanelList: DMListType): OSErr;